查看原文
其他

子芽:研发一款好用的代码安全疫苗是悬镜的长期责任

悬镜安全 2022-07-03

近日,金融行业IAST技术实践活动在深圳圆满召开,本次活动由悬镜安全协办,其创始人兼CEO子芽受邀出席本次活动并带来《DevSecOps 敏捷安全技术落地实践探索》为主题的技术分享,现场详细介绍了DevSecOps及其核心技术的落地实践,为行业用户在该领域的创新实践带来了新的思考。以下内容根据子芽演讲PPT整理。
在现场子芽提到软件开发安全面临的两个问题:
  • 系统一定有未被发现的安全漏洞。程序员每写1000行代码,就会出现1个逻辑性缺陷,每个逻辑性的缺陷,或者若干个逻辑性缺陷,最终都将导致一个漏洞;因此“缺陷是天生的,漏洞是必然的。”

  • 现代应用都是组装的而非纯自研。78%-90%的现代应用融入了开源组件,平均每个应用包含147个开源组件,且67%的应用采用了带有已知漏洞的开源组件,软件供应链安全威胁迫在眉睫。

现代应用的风险面,不仅有Web通用漏洞(SQL注入、命令执行、XXE、XXS等OWASP TOP 10)和业务逻辑漏洞(水平/垂直越权、短信轰炸、批量注册、验证码绕过等),还有大量来自第三方开源组件缺陷(如CNNVD/CNVD/CVD漏洞)和自研代码。
因此,针对现代应用全面风险审查应从考虑第三方开源组件、自研代码通用漏洞、自研代码业务逻辑漏洞等维度进行综合安全审查。
接下来子芽介绍了软件安全问题产生的内外因素,其中内因一共有三个部分分别是:
  • 软件规模持续扩大,功能越来越多,越来越复杂;

  • 软件模块复用,导致安全漏洞延续,如果组件本身有漏洞则会形成缺陷传染

  • 软件扩展模块带来的安全问题,比如留置的第三方插件接口等。


接下来说一下外因,外因的核心还是反复强调的开源治理。开源软件的盛行给安全带来巨大的挑战,不同行业不同领域引用的第三方的开源组件库的比例不同,但都会导致出现大量的安全风险。
传统的SDL面临的安全挑战主要来自3个方面:
  • 业务先上线,安全问题后补救;

  • 安全责任过于依赖有限的安全团队资源;

  • 安全较缓慢,常置于流程之外,当版本更新迭代较快时,传统的安全手段限制业务交付。

提及DevSecOps,大家可能最先想到的就是莫比乌斯带,代表永恒的持续。在DevSecOps中,就是用它来表达dev和ops是如何连接的,强调整个开发安全运营一体化的理念。
DevSecOps不仅要侧重左移,也要关注向右移和持续化的反馈演进。2018年针对DevSecOps框架国际上提出黄金管道,黄金管道能做的很多,但适用于流水线里面比较好的是CI/CD,关键敏捷安全技术工具链包括:一、AST(灰盒、黑盒及白盒),二、OSS开源治理,三、RASP运行时应用自我保护,四、智能红蓝对抗。
在复杂的安全成因下,子芽认为,企业最需要优先考虑的DevSecOps实践基础技术应该是AST(灰盒、黑盒及白盒等相关技术)。白盒更加适应安全团队相对成熟且具备运营能力的甲方,在通用化方面不够完善,黑盒大部分偏向漏扫,侧重于上线运营阶段,而灰盒对于应用自身风险发现有着更显著的效果。其中,研发一款好用的代码安全疫苗也是悬镜安全的长期责任。
通过AST技术优劣势的对比图我们可以发现,IAST技术误报率极低、检出率高、使用成本低、基本没有误报,同时更偏向本身漏洞,也可发现难以回显带外。每一项技术都有自己的特点,任何一项新兴技术的出现,都有时代的背景和其使用场景,没有绝对好坏之分。
目前我们认为在DevSecOps实践框架下,最需要优先考虑的关键基础技术则是IAST,在活动现场子芽对IAST技术进行了详细的介绍。
狭义的IAST一般特指运行时插桩模式,可帮助普通研发测试人员快速完成业务安全测试,精准定位漏洞细节及修复指导,而广义的IAST则包含了流量学习和日志分析等更多模式和能力,一般适用于较大规模的团队和部门,可以在组织边界处配置流量镜像辅助插桩,主动完成对内部测试资产的全局梳理。同时IAST比较依赖用户点击流量覆盖的全面性,可通过主动模拟点击技术做进一步补充。
被动IAST技术(动态污点追踪):基于应用插桩探针,Web应用运行过程中,通过实时监控程序的污点数据在系统程序中的传播来检测数据能否从污点源传播到污点汇集点。特点是:
  • 误报及漏报高于主动IAST;

  • 无数据重放、无脏数据;

  • 支持防重放、带签名、加密接口。

主动IAST技术(交互式缺陷定位):基于应用插桩探针,Web应用运行过程中,通过精心构造重放流量的payload来注定触发潜藏在业务应用里的安全漏洞,并在应用执行的关键函数点进行敏感操作判断和深度的脏数据处理,在发现潜藏漏洞的同时精准定位器所在代码行。特点是:
  • 精准度更高,更易于指导研发修复;

  • 支持漏洞利用、漏洞复现;

  • 无法处理签名加密接口

IAST流量镜像及嗅探技术:适合测试目标或部分之间存在隔离,无法清晰了解测试资产,通过在网络出口旁路部署流量镜像或目标主机上预置流量嗅探服务,透明无感知接入。
IAST用户端流量代理技术:适合测试人员对小规模网站进行深度渗透测试,不依赖测试系统语言环境,无需介入测试环境即可进行安全测试。
IAST实时WEB日志分析:实现基于请求流量日志收集并实时分析的检测模式,可支持不同场景下日志产生位置的收集。该模式对应用入侵性极低,并且可以针对性设置采集点,将业务影响降到最低。
IAST运行时OSS开源组件分析:更加侧重应用系统实际运行过程中动态加载的第三方组件及依赖,在此基础上实时检测组件中潜藏的各类安全漏洞及开源协议风险。
在活动上,子芽还对IAST技术的特点及落地重点考虑事项进行了总结分享:
IAST技术特点
  • 检测范围可覆盖黑盒OWASP TOP10及白盒CWE主要漏洞及缺陷;

  • 相比传统SAST/DAST,IAST精准度更高;

  • IAST可以解决签名接口问题;

  • IAST可以检测非HTTP/HTTPS协议,如RPC协议更使用于微服务场景;

  • IAST获取信息全面和精细,有利于指导研发;

  • IAST更易于整合到DevSecOps CI/CD流程;

  • 主被动IAST融合,将使IAST技术优势更加突出。

落地重点考虑事项
  • 同时支持应用插桩和多种流量追踪技术,应对业务场景丰富、开发语言众多、部署环境复杂等场景;

  • 支持自动化安装,协调CI/CD完成批量部署;

  • 支持配置热加载、性能异常熔断机制;

  • 支持SCA第三方开源组件运行时监测分析;

  • 支持Jenkins、Jira、CAS等第三方平台;

  • 支持全流程闭环漏洞管理,包括从漏洞发现、问题沟通、修复整改、漏洞复查及趋势分析等维度;

  • 通过开放接口支持自定义安全过滤函数和清洁函数;

  • 支持IPV6和国产系统环境。

复杂的企业环境对IAST技术落地提出了更高的要求,综合看来,IAST技术的落地需要重点结合企业组织的实际环境。
悬镜安全作为DevSecOps敏捷安全的领导者,有着丰富的落地实践案例和完备的体系方案,业内首创的DevSecOps智适应威胁管理体系,为政企用户提供包括威胁建模、开源治理、风险发现、威胁模拟及检测响应在内的全生命周期敏捷安全解决方案,深度覆盖需求分析、编码实现、测试验证、发布上线及常态化运营等关键阶段。
子芽在分享的最后还专门提到“敏捷安全工具金字塔”,它是悬镜安全在2020年发布的《2020 DevSecOps行业洞察报告》中首次提出的概念,第一次系统性定义了面向未来DevSecOps技术演进的工具链技术,并综合考虑了新型技术的前瞻性、落地实践难度及市场普及程度所需周期,涵盖了从传统建设层、应用实践层再到卓越层的不同的发展阶段。其中,基于风险信任动态平衡将是整个DevSecOps未来演进的最终方向。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存